package cn.tedu.wordcount;

import java.io.IOException;

import org.apache.hadoop.io.*;
import org.apache.hadoop.mapreduce.Mapper;

//1、继承Mapper
//2、查看文档内容，
/*
 * KEYIN是单词的偏移量，LongWritable类型
 * VALUEIN是每行单词，Text类型
 * KEYOUT是统计出现的每个单词，Text类型
 * VALUEOUT是统计单词出现的次数，可以用IntWritable
 */
public class WordCountMapper
		extends Mapper<LongWritable,Text,Text,IntWritable>{
	//6.1、写出次数
	private final IntWritable count =
			new IntWritable(1);
	//3、重写map方法，敲上map然后alt+/，删掉方法中的注释和super.xxx
	@Override
	protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, IntWritable>.Context context)
			throws IOException, InterruptedException {
		//4、根据文本内容，通过空格对单词进行拆分
		//value是Text类型，需要转换成String类型
		String[] strs = value.toString().split(" ");
		//5、遍历
		for (String string : strs) {
			//6.2、调用context的write方法，传入两个参数
			//第一个参数是切割后统计出现的单词，文本类型
			//第二个参数是次数，每出现一次单词，次数加一
			context.write(new Text(string), count);
		}
	}
}



